package com.promise.jokerdream.utils

import android.annotation.SuppressLint
import android.content.Context

/**
 * 应用级Context管理器
 * 用于在没有Context的地方获取应用Context
 */
object AppContext {
    
    @SuppressLint("StaticFieldLeak")
    private var applicationContext: Context? = null
    
    /**
     * 初始化应用Context
     * 应该在Application或MainActivity中调用
     */
    fun init(context: Context) {
        applicationContext = context.applicationContext
    }
    
    /**
     * 获取应用Context
     * @throws IllegalStateException 如果Context未初始化
     */
    fun get(): Context {
        return applicationContext ?: throw IllegalStateException(
            "AppContext not initialized. Call AppContext.init(context) first."
        )
    }
    
    /**
     * 安全获取应用Context
     * @return Context或null
     */
    fun getOrNull(): Context? {
        return applicationContext
    }
    
    /**
     * 检查Context是否已初始化
     */
    fun isInitialized(): Boolean {
        return applicationContext != null
    }
}
